/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;

import DTO.NhanVien_DTO;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Phung
 */
public class NhanVien_DAO {
    
    public static String Get_MaNV() throws SQLException{
        String MaNV = null;
        MySQLDataHelper_DAO.open();
        Connection Con = MySQLDataHelper_DAO.getConnection();
        CallableStatement statement = Con.prepareCall("{call Add_CT_ID(?)}");
        statement.setString(1, "NV");
        statement.execute();
        ResultSet Rs = statement.getResultSet();
        if(Rs.next()){
            MaNV = Rs.getString(1);
        }
        return MaNV;
    }
    
    public static ArrayList<NhanVien_DTO> GetALL()
    {
        ArrayList<NhanVien_DTO> ds = new ArrayList<>();
        try {
            String sql = "Select * from NhanVien" ;
            MySQLDataHelper_DAO.open();
            ResultSet rs =  MySQLDataHelper_DAO.executeQuery(sql);
            while (rs.next()) {
                NhanVien_DTO NhanVien = new NhanVien_DTO();
                NhanVien.setMaNV(rs.getString("MaNV"));
                NhanVien.setTenNV(rs.getString("TenNV"));
                NhanVien.setCMND(rs.getString("CMND"));
                NhanVien.setGioiTinh(rs.getBoolean("GioiTinh"));
                NhanVien.setNgaySinh(rs.getDate("NgaySinh"));
                NhanVien.setDiaChi(rs.getString("DiaChi"));
                NhanVien.setLoaiNV(rs.getInt("LoaiNV"));
                NhanVien.setMaNVQL(rs.getString("MaNVQL"));
                NhanVien.setMaGa(rs.getString("MaGa"));
                ds.add(NhanVien);
            }
            MySQLDataHelper_DAO.close();
       }catch (SQLException ex) {
            System.out.println(ex);
        }
        return ds;
    }
    
    public static boolean Insert(NhanVien_DTO NhanVien)
    {
        boolean flag = false;
        try {
            java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyy-MM-dd");
            String NgaySinh = fmt.format(NhanVien.getNgaySinh());
            String sql = "Insert NhanVien Values('"+NhanVien.getMaNV()+"','"+NhanVien.getTenNV()+"','"+NhanVien.getCMND()+"','"+NhanVien.isGioiTinh()+"','"+ NgaySinh +"','"+NhanVien.getDiaChi()+"','"+NhanVien.getLoaiNV()+"','"+NhanVien.getMaNVQL()+"','"+NhanVien.getMaGa()+"')";
            MySQLDataHelper_DAO.open();
            int kq = MySQLDataHelper_DAO.executeUpdate(sql);
            if(kq == 1)
                flag =true;
            MySQLDataHelper_DAO.close();
        }catch (Exception ex) {
            System.out.println(ex);
        }
        return flag;
    }
    
    public static boolean Update(NhanVien_DTO NhanVien)
    {
        boolean flag = false;
        try {
            String sql = "Update NhanVien Set TenNV = '"+ NhanVien.getTenNV() +"', CMND = '"+NhanVien.getCMND()+"', NgaySinh = '"+NhanVien.getNgaySinh()+"', DiaChi = '"+ NhanVien.getDiaChi()+"', LoaiNV = "+NhanVien.getLoaiNV()+", MaNVQL = '"+NhanVien.getMaNVQL()+"', MaGa ='"+NhanVien.getMaGa()+"' where MaNV = '"+ NhanVien.getMaNV()+"'";
            MySQLDataHelper_DAO.open();
            int kq = MySQLDataHelper_DAO.executeUpdate(sql);
            if(kq == 1)
                flag =true;
            MySQLDataHelper_DAO.close();
        }catch (Exception ex) {
            System.out.println(ex);
        }
        return flag;
    }
    
    public static boolean Delete(String maNhanVien)
    {
        boolean flag = false;
        try {
            String sql = "Delete from NhanVien where MaNV = '"+maNhanVien+"'";
            MySQLDataHelper_DAO.open();
            int kq = MySQLDataHelper_DAO.executeUpdate(sql);
            if(kq == 1)
                flag =true;
            MySQLDataHelper_DAO.close();
        }catch (Exception ex) {
            System.out.println(ex);
        }
        return flag;
    }
    
}
